/*** 
 * @Author: HaiHe_Team
 * @Date: 2023-02-07 14:13:10
 * @LastEditTime: 2023-02-07 19:12:36
 * @LastEditors: Joel
 * @Description: HaiHe Copyright 2022
 * @FilePath: \vscode_test_c_code\src\hlw8012.h
 */
#ifndef __HLW8012_H
#define __HLW8012_H

#include <stdio.h>
#include <stdlib.h>
#ifdef __cplusplus
extern "C" {
#endif

// 电路图分压电阻值,可变参数
#define RESISTOR1_UP 910 // 910KR
#define RESISTOR2_UP 910 // 910KR
#define RESISTOR_DOWN 1 // 1KR
#define RESISTOR_VALUE (RESISTOR1_UP+RESISTOR2_UP+RESISTOR_DOWN)
// 规格书公式推导，以下参数为固定值，一般不更改
#define FOSC_HLW8012 6.9 // 3579KHz/512 公式
#define VERF (2430/2) // mV
#define HLW8012_RATE 1000000 // 倍率1M
// 规格书公式推导，以下参数为固定值，一般不更改
#define FOSC_POWER 27.9 // 3579KHz/128 公式
#define VERF_POWER 5.9 // VERF 2.43mv^2
#define CT_RATE 1000 // 电流互感比值
#define RESISTOR_CURRENT 10 // 电流采样电阻
#define POWER_RATE 1000 // 倍率1K

short algorithm_hlw8012_power_value(short frequency,short phase_V);
 
#ifdef __cplusplus
}
#endif

#endif
